#ifndef DECORE_MESH_H
#define DECORE_MESH_H

struct Vertex
{
	float x,  y,  z, w; //point
	float nx, ny, nz; //normal
	float tx, ty, tz;
	float bx, by, bz;
	float u1, v1;
	float padding;
};

class Mesh
{
private:
	int		mVBOId;
	int		mIBOId;

	int		mNbIndices;

public:
	Mesh();
	//! This constructor doesn't release the array, it's the responsability of the caller
	Mesh(Vertex* pVertices, int pNbVertices, unsigned int *pIndices, unsigned int pNbIndices);
	~Mesh(){}

	void setVertexBuffer(Vertex* pVertices, int pNbVertices, unsigned int *pIndices,unsigned int pNbIndices);

	void bindBuffers();
	void draw();

	void loadFromFile(const char* pFile);
};

#endif